package com.prezs.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.prezs.entity.User;

public interface IUserMapper {
	
	/**
	 * <h3>功能: 查询所有用户信息
	 * @return 包含所有用户信息的列表
	 */
	@Select("select * from t_user")
	List<User> getAllUser();
	
	/**
	 * <h3>功能: 保存用户信息
	 * @param user 用户实体
	 */
	@Insert("insert into t_user values(#{},)")
	void saveUser(User user);
	
	/**
	 * <h3>功能: 更新用户信息
	 * @param user 用户实体
	 */
	@Update("update user set where id = #{id}")
	void updateUser(User user);
	
	/**
	 * <h3>功能: 根据用户id删除用户信息
	 * @param userId 用户id
	 */
	@Delete("delete from t_user where id = #{id}")
	void deleteUserById(@Param("id") Integer userId);
	
	/**
	 * <h3>功能: 根据用户id查询用户信息
	 * @param userId 用户id
	 * @return 某一用户信息
	 */
	@Select("select * from t_user where id = #{id}")
	User getUserById(@Param("id") Integer userId);
	
	/**
	 * <h3>功能: 根据用户名模糊查询用户信息
	 * @param username 用户名
	 * @return 某一用户信息
	 */
	@Select("select * from t_user where username like #{username}")
	List<User> getUserByName(@Param("username") String username);
	
	/**
	 * <h3>功能: 查询用户总数量
	 * @return 用户的总数量
	 */
	@Select("select count(*) from t_user")
	Integer getUserTotal();
}
